﻿@model WebApp.Models.AlarmLog
@{
  ViewData["Title"] = "告警处理";
  ViewData["PageName"] = "AlarmLog";
  ViewData["Heading"] = "<i class='fal fa-window text-primary'></i>  告警处理";
  ViewData["Category1"] = "告警管理";
  ViewData["PageDescription"] = "";
}
@section HeadBlock {
  <link href="@Fingerprint.Tag("/Content/css/notifications/toastr/toastr.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Scripts/easyui/themes/insdep/easyui.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Scripts/easyui/themes/insdep/icon.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Content/css/formplugins/bootstrap-daterangepicker/bootstrap-daterangepicker.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Scripts/plugin/jquery.fileuploader/jquery.fileuploader.min.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Scripts/plugin/jquery.fileuploader/jquery.fileuploader-theme-dragdrop.css")" rel="stylesheet" />
  <link href="@Fingerprint.Tag("/Scripts/plugin/jquery.fileuploader/font/font-fileuploader.css")" rel="stylesheet" />
}

<div class="row" id="row_alarm">

</div>
<div class="row">
  <div class="col-lg-12 col-xl-12">
    <div id="panel-1" class="panel">
      <div class="panel-hdr">
        <h2>
          告警处理
        </h2>
        <div class="panel-toolbar">
          <button class="btn btn-panel bg-transparent fs-xl w-auto h-auto rounded-0" data-action="panel-collapse" data-toggle="tooltip" data-offset="0,10" data-original-title="Collapse"><i class="fal fa-window-minimize"></i></button>
          <button class="btn btn-panel bg-transparent fs-xl w-auto h-auto rounded-0" data-action="panel-fullscreen" data-toggle="tooltip" data-offset="0,10" data-original-title="Fullscreen"><i class="fal fa-expand"></i></button>
          @*<button class="btn btn-panel bg-transparent fs-xl w-auto h-auto rounded-0" data-action="panel-close" data-toggle="tooltip" data-offset="0,10" data-original-title="Close"><i class="fal fa-times"></i></button>*@
        </div>

      </div>
      <div class="panel-container show">
        <div class="panel-content py-2 rounded-bottom border-faded border-left-0 border-right-0  text-muted bg-faded bg-subtlelight-fade">
          <div class="row no-gutters align-items-center">
            <div class="col">
              <!-- 开启授权控制请参考 @@if (Html.IsAuthorize("Create") -->
              <div class="btn-group btn-group-sm">
                <button onclick="append()" class="btn btn-default"> <span class="fal fa-plus mr-1"></span> @Html.L("Add") </button>
              </div>
              <div class="btn-group btn-group-sm">
                <button onclick="docompleted()" class="btn btn-primary"> <span class="fal fa-plus mr-1"></span> 处理完成 </button>
              </div>
              
              <div class="btn-group btn-group-sm">
                <button onclick="reload()" class="btn btn-default"> <span class="fal fa-search mr-1"></span> @Html.L("Refresh") </button>
              </div>
              <div class="btn-group btn-group-sm hidden-xs">
                <button type="button" onclick="importexcel('AlarmLog')" class="btn btn-default"><span class="fal fa-cloud-upload mr-1"></span> @Html.L("Import") </button>
                <button type="button" class="btn btn-default dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  <span class="sr-only">Toggle Dropdown</span>
                </button>
                <div class="dropdown-menu">
                  <a class="dropdown-item js-waves-on" href="javascript:downloadtemplate()"><span class="fal fa-download"></span> @Html.L("Download") </a>
                </div>
              </div>
              <div class="btn-group btn-group-sm ">
                <button onclick="exportexcel()" class="btn btn-default"> <span class="fal fa-file-excel mr-1"></span>  @Html.L("Export") </button>
              </div>
              <div class="btn-group btn-group-sm ">
                <button onclick="dohelp()" class="btn btn-default"> <span class="fal fa-question-circle mr-1"></span> @Html.L("Help") </button>
              </div>
            </div>
          </div>
        </div>
        <div class="panel-content">
          <div class="table-responsive">
            <table id="alarmlogs_datagrid">
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
 
 @{ Html.RenderPartial("_ImportWindow",new ViewDataDictionary {{ "EntityName","AlarmLog" }}); }		 

 @{ Html.RenderPartial("_PopupDetailFormView",new WebApp.Models.AlarmLog()); }

            


@section ScriptsBlock {
  <script src="@Fingerprint.Tag("/Scripts/plugin/numeral/numeral.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/plugin/filesaver/FileSaver.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/plugin/filesaver/jquery.fileDownload.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/notifications/toastr/toastr.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/plugin/jquery.serializejson/jquery.serializejson.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/plugin/moment/moment-with-locales.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/plugin/jquery.fileuploader/jquery.fileuploader.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/easyui/jquery.easyui.min.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/easyui/plugins/datagrid-filter.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/easyui/plugins/columns-ext.js")"></script>
 <script src="@Fingerprint.Tag("/Scripts/formplugins/bootstrap-daterangepicker/bootstrap-daterangepicker.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/jquery.easyui.component.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/jquery.extend.formatter.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/easyui/plugins/columns-reset.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/easyui/locale/easyui-lang-zh_CN.js")"></script>
  <script src="@Fingerprint.Tag("/Scripts/jquery.custom.extend.js")"></script>
<script type="text/javascript">
      //是否强制从后台取值
      const REQUIRBACKEND = false;
      //是否开启行内编辑
      const EDITINLINE = false;
  var alarmlog = {};
  $(async () => {
    await loadalarms();
  });
  async function loadalarms() {
    const css1 = ['bg-danger-500', 'bg-warning-400', 'bg-danger-200'];
    const alarms = await $.get('/api/WaterChart/GetAlarmCount');
    $('#row_alarm').empty();
    alarms.forEach((item, i) => {
      const m = i % 4;
      const col = `<div class="col-sm-6 col-xl-3">
      <div class="p-3 ${css1[m]} rounded overflow-hidden position-relative text-white mb-g">
        <div class="">
          <h3 class="display-4 d-block l-h-n m-0 fw-500">
            ${item.count}
            <small class="m-0 l-h-n">待处理告警：${item.level}</small>
          </h3>
        </div>
        <i class="fal fa-engine-warning position-absolute pos-right pos-bottom opacity-15 mb-n1 mr-n1" style="font-size:6rem"></i>
      </div>
    </div>
         `;
      $('#row_alarm').append(col);

    });
  }
      //处理完成
  function docompleted() {
    const id = $dg.datagrid('getChecked').filter(item => item.Status == '待处理').map(item => {
      return item.Id;
    });;
    if (id.length > 0) {
      $.post('/AlarmLogs/DoCompleted', { id: id })
        .done(response => {
          if (response.success) {
            toastr.success(`完成[${id.length}]行记录`);
            reload();
            loadalarms();
          } else {
            $.messager.alert('错误', response.err, 'error');
          }
        })
        .fail((jqXHR, textStatus, errorThrown) => {
          $.messager.alert('异常', `${jqXHR.status}: ${jqXHR.statusText} `, 'error');
        });
    } else {
      $.messager.alert('提示', '请先选择【待处理】的记录!', 'question');
    }
  }
      //下载Excel导入模板
      function downloadtemplate() {
          //默认模板路径存放位置
          const url = '/FileUpload/Download?file=/ExcelTemplate/AlarmLog.xlsx';
          $.fileDownload(url)
           .done(() => {
                    //console.log('file download a success!');
                    toastr.success('模板下载完成!');  
                })
           .fail(() => {
               $.messager.alert('下载模板失败','没有下载到导入模板[AlarmLog.xlsx]文件!','error'); 
            });           
       }
       //打印
       function print() {
            $dg.datagrid('print', 'DataGrid');
       }
       //执行导出下载Excel
       function exportexcel() {
                const filterRules = JSON.stringify($dg.datagrid('options').filterRules);
                //console.log(filterRules);
                $.messager.progress({ title: '正在执行导出!' });
                let formData = new FormData();
                formData.append('filterRules', filterRules);
                formData.append('sort', 'Id');
                formData.append('order', 'asc');
                $.postDownload('/AlarmLogs/ExportExcel', formData).then(res => {
                    $.messager.progress('close');
                    toastr.success('导出成功!');
                }).catch(err => {
                    //console.log(err);
                    $.messager.progress('close');
                    $.messager.alert('导出失败', err.statusText, 'error');
                });

        }
        //显示帮助信息
        function dohelp() {
            toastr.info('有问题请联系管理员 <br><i class="fa fa-envelope-o" aria-hidden="true"></i> : demo@admin.com','帮助');  
        }
       var editIndex = undefined;
       //重新加载数据
       function reload() {
            $dg.datagrid('unselectAll');
    $dg.datagrid('uncheckAll');
    $dg.datagrid('reload');
       }
      //关闭编辑状态
      function endEditing() {
            if (editIndex === undefined) { 
                return true; 
            }
            if ($dg.datagrid('validateRow', editIndex)) {
                $dg.datagrid('endEdit', editIndex);
                return true;
            } else {
                const invalidinput = $('input.validatebox-invalid',$dg.datagrid('getPanel'));
                const fieldnames = invalidinput.map((index, item) => {
                  return $(item).attr('placeholder') || $(item).attr('id');
                });
                $.messager.alert('提示', `${Array.from(fieldnames)} 输入有误.`, 'error');
                return false;
            }
        }
    //单击列开启编辑功能
    function onClickCell(index, field) {
        alarmlog = $dg.datagrid('getRows')[index];
        const _actions = ['action', 'ck'];
        if (!EDITINLINE || $.inArray(field, _actions) >= 0) {
                return;
        }
        if (editIndex !== index) {
            if (endEditing()) {
                $dg.datagrid('selectRow', index)
                   .datagrid('beginEdit', index);
                hook = true;
                editIndex = index;
                const ed = $dg.datagrid('getEditor', { index: index, field: field });
                if (ed) {
                        ($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();
                }
            } else {
                $dg.datagrid('selectRow', editIndex);
            }
        }
    }
    //新增记录
    async function append() {
      alarmlog = {
        InitDateTime: moment().format('YYYY-MM-DD HH:mm:ss'),
        Status: '待处理',
        Type: '故障',
        Level: '一级',
         User:'@ViewBag.FullName',
BeginDateTime: null, 
CompletedDateTime: null, 
 };
        //需要后台创建对象
       if (REQUIRBACKEND) {
         alarmlog = await $.get('/AlarmLogs/NewItem');
       }
        if (!EDITINLINE) {
           //弹出新增窗口
           openalarmlogdetailwindow(alarmlog, 'Added');
        } else {
            if (endEditing()) {
                //对必填字段进行默认值初始化
                $dg.datagrid('insertRow', 
                              {   
                                  index: 0,
                                  row: alarmlog
                               });
                editIndex = 0;
                $dg.datagrid('selectRow', editIndex)
                    .datagrid('beginEdit', editIndex);
                hook = true;
            }
        }
    }
    //删除编辑的行
  function removeit() {

    if ($dg.datagrid('getChecked').length<=1 && EDITINLINE) {
          if (editIndex !== undefined) {
             const delindex = editIndex;
             $dg.datagrid('cancelEdit', delindex)
                .datagrid('deleteRow', delindex);
               hook = true;
               $("button[name*='savebutton']").prop('disabled', false);
               $("button[name*='cancelbutton']").prop('disabled', false);
           }else{
              const rows = $dg.datagrid('getChecked').filter(item=>item.Status=='待处理');
              rows.slice().reverse().forEach(row => {
                const rowindex = $dg.datagrid('getRowIndex', row);
                $dg.datagrid('deleteRow', rowindex);
                hook = true;
                $("button[name*='savebutton']").prop('disabled', false);
                $("button[name*='cancelbutton']").prop('disabled', false);
            });
           }
        } else {
          deletechecked();
        }
    }
  //删除该行
  function deleteRow(id) {
    $.messager.confirm('确认', '你确定要删除该记录?', result => {
      if (result) {
        dodeletechecked([id]);
      }
     });  
  }
    //删除选中的行
  function deletechecked() {
    const id = $dg.datagrid('getChecked').filter(item => item.Status == '待处理' && item.Id>0).map(item => {
                   return item.Id;
                });;
        if (id.length > 0) {
           $.messager.confirm('确认', `你确定要删除这 <span class='badge badge-icon position-relative'>${id.length} </span> 行记录?`, result => {
                if (result) {
                    dodeletechecked(id);
                    }
                });  
         } else {
                $.messager.alert('提示', '请先选择【待处理】的记录!','question');
         }
     }
    //执行删除
    function dodeletechecked(id){
       $.post('/AlarmLogs/DeleteChecked', { id: id })
                         .done(response => {
                                if (response.success) {
                                    toastr.error(`成功删除[${id.length}]行记录`);  
                                    reload();
                                } else {
                                    $.messager.alert('错误', response.err,'error');
                                }
                          })
                          .fail((jqXHR, textStatus, errorThrown) => {
                             $.messager.alert('异常', `${jqXHR.status}: ${jqXHR.statusText} `, 'error');
                          });
    }
    //提交保存后台数据库
    function accept() {
      if (endEditing()) {
        if ($dg.datagrid('getChanges').length > 0) {
          const inserted = $dg.datagrid('getChanges', 'inserted').map(item => {
          item.TrackingState = 1;
          return item;
        });
        const updated = $dg.datagrid('getChanges', 'updated').map(item => {
          item.TrackingState = 2
          return item;
        });
        const deleted = $dg.datagrid('getChanges', 'deleted').map(item => {
          item.TrackingState = 3
          return item;
        });
        //过滤已删除的重复项
        const changed = inserted.concat(updated.filter(item => {
            return !deleted.includes(item);
          })).concat(deleted);
        //console.table(changed);
        $.messager.progress({ title: '请等待', msg: '正在保存数据...', interval:200});
        $.post('/AlarmLogs/SaveData', {alarmlogs:changed})
                     .done(response => {
                     $.messager.progress('close');
                           //console.log(response);
                           if (response.success) {
                               toastr.success('保存成功');  
                               $dg.datagrid('acceptChanges');
                               reload();
                               hook = false;
                           } else {
                               $.messager.alert('错误', response.err ,'error');
                           }
                        })
                      .fail((jqXHR, textStatus, errorThrown) => {
                        $.messager.progress('close');
                        $.messager.alert('异常', `${jqXHR.status}: ${jqXHR.statusText} `, 'error');
                      });
                }
            }
    }
    function reject() {
        $dg.datagrid('rejectChanges');
        editIndex = undefined;
        hook = false;
    }
    function getChanges() {
        const rows = $dg.datagrid('getChanges');
        //console.log(rows.length + ' rows are changed!');
    }
    //弹出明细信息
    async function showdetailswindow(id,index) {
        const alarmlog = $dg.datagrid('getRows')[index];
        if (REQUIRBACKEND) {
           alarmlog = await $.get('/AlarmLogs/GetItem/' + id);
        }
        openalarmlogdetailwindow(alarmlog,'Modified');
    }

    //初始化定义datagrid
    var $dg = $('#alarmlogs_datagrid');
  $(() => {
    //定义datagrid结构
    $dg.datagrid({
     height:670,
      pageSize:15,
      rownumbers: true,
      checkOnSelect: false,
      selectOnCheck: false,
      idField: 'Id',
      sortName: 'Id',
      sortOrder: 'desc',
      remoteFilter: true,
      singleSelect: false,
      url: '/AlarmLogs/GetData',
      method: 'get',
      onClickCell: onClickCell,
      pagination: true,
      clientPaging: false,
      striped: true,
      pageList: [15, 20, 50, 100, 500],
      filterRules: [
        { field: 'Status', op: 'equal', value: '待处理' }
      ],
      onHeaderContextMenu: function (e, field) {
        e.preventDefault();
        $(this).datagrid('columnMenu').menu('show', {
          left: e.pageX,
          top: e.pageY
        });
      },
      onBeforeLoad: function () {
        const that = $(this);
        document.addEventListener('smartPanel.onFullscreen', () => {
          setTimeout(() => {
            that.datagrid('resize');
          }, 200)
        })
      },
      onLoadSuccess: function (data) {
        editIndex = undefined;
        $("button[name*='deletebutton']").prop('disabled', true);
        $("button[name*='savebutton']").prop('disabled', true);
        $("button[name*='cancelbutton']").prop('disabled', true);
      },
      onCheck: function () {
        $("button[name*='deletebutton']").prop('disabled', false);
      },
      onUncheck: function () {
        const checked = $(this).datagrid('getChecked').length > 0;
        $("button[name*='deletebutton']").prop('disabled', !checked);
      },
      onSelect: function (index, row) {
        alarmlog = row;
      },
      onBeginEdit: function (index, row) {
        //const editors = $(this).datagrid('getEditors', index);

      },
      onEndEdit: function (index, row) {

      },
      onBeforeEdit: function (index, row) {
        editIndex = index;
        row.editing = true;
        $("button[name*='deletebutton']").prop('disabled', false);
        $("button[name*='cancelbutton']").prop('disabled', false);
        $("button[name*='savebutton']").prop('disabled', false);
        $(this).datagrid('refreshRow', index);
      },
      onAfterEdit: function (index, row) {
        row.editing = false;
        editIndex = undefined;
        $(this).datagrid('refreshRow', index);
      },
      onCancelEdit: function (index, row) {
        row.editing = false;
        editIndex = undefined;
        $("button[name*='deletebutton']").prop('disabled', true);
        $("button[name*='savebutton']").prop('disabled', true);
        $("button[name*='cancelbutton']").prop('disabled', true);
        $(this).datagrid('refreshRow', index);
      },
      frozenColumns: [[
        /*开启CheckBox选择功能*/
        { field: 'ck', checkbox: true },
        {
          field: 'action',
          title: '@Html.L("Command")',
          width: 60,
          sortable: false,
          resizable: true,
          formatter: function showdetailsformatter(value, row, index) {
            if (!row.editing) {
              return `<div class="btn-group">\
                          <button onclick="showdetailswindow('${row.Id}',  ${index})" class="btn btn-primary btn-sm btn-icon waves-effect waves-themed" data-toggle="tooltip" data-placement="right" title="@Html.L("EditDetail")" ><i class="fal fa-edit"></i> </button>\
                      </div>`;
            } else {
              return `<button class="btn btn-primary btn-sm btn-icon waves-effect waves-themed" disabled title="查看明细"  ><i class="fal fa-edit"></i> </button>`;
            }
          }
        }
      ]],
      columns: [[

        {   /*发生时间*/
          field: 'InitDateTime',
          title: '<span class="required">@Html.DisplayNameFor(model => model.InitDateTime)</span>',
          width: 150,
          align: 'right',
          hidden: false,
          editor: {
            id: 'editor_InitDateTime',
            type: 'datetimebox',
            options: { prompt: '@Html.DisplayNameFor(model => model.InitDateTime)', required: true }
          },
          formatter: datetimeformatter,
          sortable: true,
          resizable: true
        },
        {    /*对象*/
          field: 'DeviceId',
          title: '<span class="required">@Html.DisplayNameFor(model => model.DeviceId)</span>',
          width: 200,
          hidden: false,
          editor: {
            id: 'editor_DeviceId',
            type: 'textbox',
            options: { prompt: '@Html.DisplayNameFor(model => model.DeviceId)', required: true, validType: 'length[0,50]' }
          },
          sortable: true,
          resizable: true
        },
        {    /*报警内容*/
          field: 'Content',
          title: '@Html.DisplayNameFor(model => model.Content)',
          width: 260,
          hidden: false,
          editor: {
            id: 'editor_Content',
            type: 'textbox',
            options: { prompt: '@Html.DisplayNameFor(model => model.Content)', required: true, validType: 'length[0,300]' }
          },
          sortable: true,
          resizable: true
        },
        {    /*状态*/
          field: 'Status',
          title: '@Html.DisplayNameFor(model => model.Status)',
          width: 100,
          align: 'right',
          hidden: false,
          editor: {
            /*需要在键值对中维护status枚举值并生成JavaScript才能使用*/
            id: 'editor_Status',
            type: 'alarmstatuseditor',
            options: {
              prompt: '@Html.DisplayNameFor(model => model.Status)',
              required: false
            }
          }
        },
        {    /*类型*/
          field: 'Type',
          title: '<span class="required">@Html.DisplayNameFor(model => model.Type)</span>',
          width: 120,
          hidden: false,
          editor: {
            id: 'editor_Type',
            type: 'alarmtypeeditor',
            options: { prompt: '@Html.DisplayNameFor(model => model.Type)', required: true, validType: 'length[0,30]' }
          },
          sortable: true,
          resizable: true
        },
        {    /*报警等级*/
          field: 'Level',
          title: '<span class="required">@Html.DisplayNameFor(model => model.Level)</span>',
          width: 120,
          hidden: false,
          editor: {
            id: 'editor_Level',
            type: 'alarmleveleditor',
            options: { prompt: '@Html.DisplayNameFor(model => model.Level)', required: true, validType: 'length[0,30]' }
          },
          sortable: true,
          resizable: true
        },
        {    /*提交人*/
          field: 'User',
          title: '@Html.DisplayNameFor(model => model.User)',
          width: 120,
          hidden: false,
          editor: {
            id: 'editor_User',
            type: 'textbox',
            options: { prompt: '@Html.DisplayNameFor(model => model.User)', required: false, validType: 'length[0,20]' }
          },
          sortable: true,
          resizable: true
        },
        {    /*处理人*/
          field: 'ToUser',
          title: '@Html.DisplayNameFor(model => model.ToUser)',
          width: 120,
          hidden: false,
          editor: {
            id: 'editor_ToUser',
            type: 'textbox',
            options: { prompt: '@Html.DisplayNameFor(model => model.ToUser)', required: false, validType: 'length[0,20]' }
          },
          sortable: true,
          resizable: true
        },
        {   /*开始处理时间*/
          field: 'BeginDateTime',
          title: '@Html.DisplayNameFor(model => model.BeginDateTime)',
          width: 150,
          align: 'right',
          hidden: false,
          editor: {
            id: 'editor_BeginDateTime',
            type: 'datetimebox',
            options: { prompt: '@Html.DisplayNameFor(model => model.BeginDateTime)', required: false }
          },
          formatter: datetimeformatter,
          sortable: true,
          resizable: true
        },
        {   /*完成时间*/
          field: 'CompletedDateTime',
          title: '@Html.DisplayNameFor(model => model.CompletedDateTime)',
          width: 150,
          align: 'right',
          hidden: false,
          editor: {
            id: 'editor_CompletedDateTime',
            type: 'datetimebox',
            options: { prompt: '@Html.DisplayNameFor(model => model.CompletedDateTime)', required: false }
          },
          formatter: datetimeformatter,
          sortable: true,
          resizable: true
        },
        {    /*处理结果*/
          field: 'Result',
          title: '@Html.DisplayNameFor(model => model.Result)',
          width: 260,
          hidden: false,
          editor: {
            id: 'editor_Result',
            type: 'textbox',
            options: { prompt: '@Html.DisplayNameFor(model => model.Result)', required: false, validType: 'length[0,300]' }
          },
          sortable: true,
          resizable: true
        },
      ]]
    }).datagrid('columnMoving')
      .datagrid('resetColumns');

    $dg.datagrid('enableFilter', [
      /*需要在键值队维护好status枚举值*/
      {  /*状态*/
        field: 'Status',
        type: 'alarmstatusfilter',
      },
      {  /*状态*/
        field: 'Level',
        type: 'alarmlevelfilter',
        options: {

        }
      },
      {  /*状态*/
        field: 'Type',
        type: 'alarmtypefilter',
      },
      {     /*发生时间*/
        field: 'InitDateTime',
        type: 'dateRange',
        options: {
        }
      },
      {     /*开始处理时间*/
        field: 'BeginDateTime',
        type: 'dateRange',
        options: {
        }
      },
      {     /*完成时间*/
        field: 'CompletedDateTime',
        type: 'dateRange',
        options: {
        }
      },
    ]);
  });
 
</script>



}

 
